// pages/register/register.js
const api = require("../../comm/api")
const http = require("../../utils/http")
import Notify from '../../components/@vant/weapp/notify/notify';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    userName: '',         // 注册账号
    userName_error: '',   // 账号输入出错提示

    password: '',         // 密码
    password_error: '',   // 密码输入错误提示
    password2: '',        // 确认密码
    password2_error: '',  // 确认密码错误提示

    phonenumber: '',      // 手机号码
    phonenumber_error: '',// 手机号码错误提示

    sex: "0",             // 性别，默认为女

    isLoading: false      // 是否正在提交
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 表单提交处理事件
   * @param {*} e 表单提交时间参数
   *    .detail.value内容为提交的表单数据
   */
  onSubmit: function (e) {
    // 获取提交的参数
    const params = e.detail.value
    // 检测提交的账号是否为空
    const userName_valied = !!params.userName
    // 检测提交的密码是否为空
    const password_valied = !!params.password
    // 检测前后两次密码是否一直
    const password2_valied = params.password == params.password2
    // 检测输入的手机号码是否为空
    const phonenumber_valied = !!params.phonenumber
    // 检测结果回填到data
    this.setData({
      userName_error: userName_valied ? "" : "账号不能为空",
      password_error: password_valied ? "" : "密码不能为空",
      password2_error: password2_valied ? "" : "两次密码不一致",
      phonenumber_error: phonenumber_valied ? "" : "手机号码不能为空",
    })
    // 判断账号、密码、确认密码、手机号码全不为空，则执行下一步
    if (userName_valied && password_valied
      && password2_valied && phonenumber_valied) {
      // 数据有效，清除多余的参数
      delete params["1"]
      delete params["0"]
      delete params["password2"]
      // 设置开始提交状态
      this.setData({
        isLoading: true
      })
      // 连接服务器，开始注册
      http.postJSON(api.User.Register.PATH, params,
        pojo => {
          // 注册成功，显示提示，延时1秒后回到上一页面
          Notify({
            type: 'success',
            message: '注册成功',
            duration: 1000,
            onClose: () => {
              this.backtoLogin()
            }
          })
        }, err => {
          // 注册失败，显示错误提示
          Notify({
            type: 'warning',
            message: JSON.stringify(err),
          })
          this.setData({
            isLoading: false
          })
        })
    }
  },

  /**
   * 回到登录页面
   */
  backtoLogin: function () {
    wx.navigateBack({
      delta: 0,
    })
  }
})